home *** CD-ROM | disk | FTP | other *** search
- // genesis.cpp : implementation file
- //
-
- #include "stdafx.h"
- #include "itriazon.h"
- #include "itriadoc.h"
- #include "itriavw.h"
- #include "nthorder.h"
- #include "math.h"
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char BASED_CODE THIS_FILE[] = __FILE__;
- #endif
-
- //////////////////////////////////////////////////////////
- // CIterationsView meessage handlers
- // Equations converted over from the Genesis1.for software
- //////////////////////////////////////////////////////////
-
- void CIterationsView::Genesis()
- {
- switch (nDistortion)
- {
- case 101:
- // Generalized Mandelbrot
- // cn = cmplx (cr,ci);
- // Jaenisch method for generalized mandelbrot
-
- // x1 = x = cx;
- // y1 = y = cy;
- // k1 = 0;
- //
- // // 1st pass
- // for (k = 0 ; k < NMAX ; k++)
- // {
- // if (x == 0 && y == 0)
- // {
- // k1 = 0;
- // goto C12_0;
- // }
- //
- // t4 = logl(x*x + y*y);
- // ri = rorder_i*atan2l(y,x);
- // rr = rorder_r*atan2l(y,x);
- // rt = rorder_i*t4/2.0;
- // ex = expl(rorder_r*t4/2.0 - ri); // try (rt - ri) for a new fractal type
- // x1 = ex * cosl(rt + rr) + cx;
- // y1 = ex * sinl(rt + rr) + cy;
- //
- // r = x1 * x1 + y1 * y1;
- // k++;
- // if (r > dBailout)
- // {
- // k1 = k;
- // b_GT4 = TRUE;
- // goto C12_0;
- // }
- // x = x1;
- // y = y1;
- // }
- //
- // b_MAX = TRUE;
- //
- // x1 = x = cx;
- // y1 = y = cy;
- // k1 = 0;
- //
- // // 2nd pass
- // for (k = 0 ; k < NMAX ; k++)
- // {
- // if (x == 0 && y == 0)
- // {
- // k1 = 0;
- // //AfxMessageBox("going to c12_2");
- // goto C12_2;
- // }
- //
- // t4 = logl(x*x + y*y);
- // ri = rorder_i*atan2l(y,x);
- // rr = rorder_r*atan2l(y,x);
- // rt = rorder_i*t4/2.0;
- // ex = expl(rorder_r*t4/2.0 - ri); // try (rt - ri) for a new fractal type
- // x1 = ex * cosl(rt + rr) + cx;
- // y1 = ex * sinl(rt + rr) + cy;
- //
- // //r = x1*x1 + y1*y1; // This also works
- //
- // if (x1 < 0) x = -(log10l(fabsl(x1)));
- // else if (x1 > 0) x = log10l(fabsl(x1));
- // else xx = 0L;
- //
- // if (y1 < 0) y = -(log10l(fabsl(y1)));
- // else if (y1 > 0) y = log10l(fabsl(y1));
- // else yy = 0L;
- //
- // r = x*x + y*y; // This also works
- //
- // if (k == 0) { k1 = 1; rz = r; }
- // else if (k == 1)
- // {
- // if (r > rz) rzflag = 1;
- // else rzflag = -1;
- // rz = r;
- // }
- // else
- // {
- // if (r > rz && rzflag != 1)
- // {
- // k1++;
- // rzflag = 1;
- // }
- // else
- // if (r < rz && rzflag != -1)
- // {
- // k1++;
- // rzflag = -1;
- // }
- // rz = r;
- // }
- // C12_2:;
- // }
- //
- // C12_0:
- //
- // xsquared = x1*x1;
- // ysquared = y1*y1;
- //
- // if (k1 >= NMAX)
- // b_MAX = TRUE;
- // else
- // b_MAX = FALSE;
- //
- // i = k1 % NMAX;
- //
- // if (i < 0 || i > NMAX)
- // {
- // AfxMessageBox("error, i out of range");
- // Row = 0;
- // }
- //
-
- // Generalized Mandelbrot 101
- z1 = z;
- z2 = cmplx(rorder_r, rorder_i);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=(z^z2) + c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
-
- if (i >= JMAX)
- {
- // Inside
- z = z1;
- z2 = cmplx(rorder_r, rorder_i);
- b_MAX = TRUE;
- i = 0;
- jrw=0;
- JMAX=NMAX-2;
- while (i++ < JMAX)
- {
- //z=z*z + c;
- z=(z^z2) + c;
-
- if (z.real() < 0) z.set_real( -(log10(fabs(z.real()))));
- else if (z.real() > 0) z.set_real( log10(fabs(z.real())));
- else z.set_real(0);
-
- if (z.imag() < 0) z.set_imag( -(log10(fabs(z.imag()))));
- else if (z.imag() > 0) z.set_imag( log10(fabs(z.imag())));
- else z.set_imag(0);
-
- r = z.squares();
-
- if (i == 0) { k1 = 1; rz = r; }
- else if (i == 1)
- {
- if (r > rz) rzflag = 1;
- else rzflag = -1;
- rz = r;
- }
- else
- if (r > rz && rzflag != 1)
- {
- jrw+=nFF;
- rzflag = 1;
- }
- else
- if (r < rz && rzflag != -1)
- {
- jrw+=nFF;
- rzflag = -1;
- }
- rz = r;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- i = jrw % NMAX;
- }
- else
- if (nFilter) Filter_Complete();
-
- break;
-
- case 102:
- // Multi-Fract
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = (z*z+c).csin();
- z = z*z+c;
- // if (nFilter) Delta_z(z.real(), z.imaginary());
- }
-
- //z = z/i;
- c = z/i;
- z = cmplx(0, 0);
- i = 0;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 103:
- z2 = cmplx(rorder_r,rorder_i);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z+(((z*z)^z2)+c);
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 104:
- t=c;
- t3=t*t*t;
- t2=t*t;
- a=t2/t3;
- b=a*a*a+(t2-cmplx(2,0))/t3;
- aa3=a*a*a;
-
- if (jul == 0)
- z=-a;
-
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z-aa3*z+b;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 105:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z.ccos() * (z*z+c);
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 106:
- // for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- // {
- // z = (2*z.csin()) * (z*z+c);
- // if (nFilter) Delta_z(z.real(), z.imaginary());
- // }
- // if (nFilter) Filter_Complete();
-
- z1 = z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = (z*c).ccos()*c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
-
- if (i >= JMAX)
- {
- // Inside
- z = z1;
- b_MAX = TRUE;
- i = 0;
- jrw=0;
- //while ( z.squares() < dBailout && i++ < NMAX-2)
- JMAX=NMAX-2;
- while (i++ < JMAX)
- {
- //z=z*z + c;
- //z = (z^3) + z*(c - 1) - c;
- z = (z*c).ccos()*c;
-
- if (z.real() < 0) z.set_real( -(log10(fabs(z.real()))));
- else if (z.real() > 0) z.set_real( log10(fabs(z.real())));
- else z.set_real(0);
-
- if (z.imag() < 0) z.set_imag( -(log10(fabs(z.imag()))));
- else if (z.imag() > 0) z.set_imag( log10(fabs(z.imag())));
- else z.set_imag(0);
-
- r = z.squares();
-
- if (i == 0) { k1 = 1; rz = r; }
- else if (i == 1)
- {
- if (r > rz) rzflag = 1;
- else rzflag = -1;
- rz = r;
- }
- else
- if (r > rz && rzflag != 1)
- {
- jrw+=nFF;
- rzflag = 1;
- }
- else
- if (r < rz && rzflag != -1)
- {
- jrw+=nFF;
- rzflag = -1;
- }
- rz = r;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- i = jrw % NMAX;
- }
- else
- if (nFilter) Filter_Complete();
-
- break;
-
- case 107: // CBAP F(z) = Z^3 - 3*(A^2)*Z + B(MOD 2)
- t=c;
- t3=3*t;
- t2=t*t;
- a=(t2+1)/t3;
- b=2*a*a*a+(t2-cmplx(2,0))/t3;
- aa3=a*a*3;
-
- if (jul == 0)
- z=-a;
-
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z-aa3*z+b;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 108: // CCAP
- t=c;
- a=t;
- b=t+2*t*t*t;
- aa3=a*a*3;
-
- if (jul == 0)
- z=-a;
-
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z-aa3*z+b;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 109:
- t=c;
- a=t;
- b=2*t*t*t-2*t;
- aa3=a*a*3;
- a2=a+a;
-
- if (jul == 0)
- z=-a;
-
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z-aa3*z+b;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 110:
- a=c;
- aa=a*a;
- aa3=aa*3;
- aaa2=aa*a*2;
-
- if (jul == 0)
- z=-a;
-
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z-aa3*z+1+aaa2;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 111:
- for (j = 0 ; j < 2 ; j++)
- {
- if (j)
- z = z^z.ccos();
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 112:
- for (j = 0 ; j < 2 ; j++)
- {
- if (j)
- z = z^z.csin();
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 113:
- t1 = .02;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- //z = z-c;
- z = ((z*z).ccos()+c/(1+z)).ccos()+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 114:
- t1 = .02;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- //z = ((z.ccos()).ccos()).ccos()*z+c;
- z = z*z;
- z = tangent(z)+c;
- //z = tangent(z*z)+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 115:
- if (jul == 0)
- {
- z.set_real(0);
- z.set_imag(0);
- }
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = (z^3) + z*(c-1) - c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 116: // Sharon01 Star
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+1/c; // Sharon01
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 117: // 02 Sharon's Space Probe
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = (z*z/2+c)*(z*z/2+c);
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 118: // Sharon03
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- //z=(z*z*z*z)/(1+acos(z))+c;
-
- z=(1/z*z-c)*(z*z*z*z+c);
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 119: // Sharon04
- for (i = 0; i < JMAX && z.squares() < (dBailout) ; i++)
- {
- z=(z*z*z*z)/(1+z.csin())+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 120: // Sharon05
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- //z = ((z*z+c)*(z*z+c))/2;
-
- z = ((z*z*z*z+c)*(z+1/c));
-
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 121: // Sharon06
- c = c+(c/pi);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 122: // Sharon07
- c = 4*(c/2);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 123: // Sharon08
- t = (c/2)^2;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+t+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 124: // Sharon09
- t = (c/1.936)^2;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+t+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 125: // Sharon10
- t = (c/1.993)^2;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+t+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 126:
- for (i = 0; i < JMAX && z.squares() < dBailout*25 ; i++)
- {
- z = (z*z/2)+c;
- z = z*z*z*z;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 127: // Sharon12
- for (i = 0; i < JMAX && z.squares() < dBailout*25 ; i++)
- {
- z = (z+z*z/2)+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 128:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = (z^(c+2))+z*z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 129:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=(z^(c+4))+z*z*z*z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 130:
- t=((z^2)/(2+z)^4);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*z*z*t+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 131:
- t=z^(z+2);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+t+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 132:
- t=z/2+z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+t*c+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 133:
- t=(1+c).csin();
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z/t+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 134:
- temp=atan(fabs(c.real()/c.imag()));
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+c/temp;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 135:
- temp=atan(fabs(c.real()/c.imag()));
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+c+temp/2;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 136:
- temp=atan(fabs(c.real()/c.imag()));
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+z*z*z+temp+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 137:
- temp=atan(fabs(c.real()/c.imag()));
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z = z*z*z*z+temp/(c+z);
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 138:
- z2=cmplx(.5,0);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z-z2*z2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
-
- break;
-
- case 139:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z-z2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 140:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+z2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 141:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+z2/2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 142:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+c.real()*z2/2+c.imag()*z2/2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 143:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+c.real()*c.imag()*z2/2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 144:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+c.real()+c.imag()*z2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 145:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+c.real()/c.imag()*z2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 146:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+4*z2*c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 147:
- z2=z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z+4*z2*c+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 148: // Quartet
- z2 = z;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z2 = z;
- z = z*z*z*z+c;
- c = z2;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 149:
- z2=cmplx(.5,0);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z-z2*c*z.real()+c+z.imag();
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 150:
- z2=cmplx(.5,0);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z-z2/2+c+z.real()*c+z.imag();;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
- //////////////////////////////////////////////////////////////////////////////////
- case 151:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=(((1/z*1/c)*z*z*z*z)+c);
- z=z*z*z*z;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 152:
- z2=cmplx(0,0);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=(z*z*z*z+c*z2+c);
- z=z*z*z*z;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 153:
- z2=z1;
- t=c;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z.csin()+z*z*z*z+c;
- c=t+z1-z;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 154:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*z/c+c;
- z=z*z*z;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 155:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*z*z/(1+z)+c;
- z=z*z*z*z;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 156:
- //z2=z1;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z/(1+z)+c;
- c=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 157:
- z2=cmplx(0,0);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z-z2*z2*z2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 158:
- z2=cmplx(0,0);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=z*z*z*z-z2*z2*z2*z2+c;
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 159:
- z2=cmplx(0,0);
- t=c/2;
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=(z*z*z*z-z2*z2*z2*z2+c)*(z*z*z*z-z2*z2*z2*z2+c);
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 160:
- z2=cmplx(0,0);
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z;
- z=(z*z-z2*z2+c)*(z*z-z2*z2-c);
- z2=z1;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 161:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z+c;
- z=z*z*(.5+z)/(.5+c)+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 162:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*z*z*(.5+z)/(.5+c)+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 163:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*(cn+z)/(cn+z+c)+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 164:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*z*z*(cn+z)/(z+c)+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 165:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*z*z*(cn-z)/(cn+c)+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 166:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z=z*z*z*z*(cn-z)/(cn+c)+c;
- z=z*z*z*z;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- case 167:
- for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
- {
- z1=z*z+c;
- z=z*z*z*z+c^z+c;
- if (nFilter) Delta_z(z.real(), z.imaginary());
- }
- if (nFilter) Filter_Complete();
- break;
-
- default:
- AfxMessageBox("Genesis Fractals, shouldn't get here...");
- break;
- }
- }
-
-